iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
AI Engineering

生成式 AI 的 30 個定律:用跨模型小實驗理解可靠 AI 的工程原則系列 第 6

第 6 律:你省略的條件與沒標清的關係,會變成 AI 的猜測

  • 分享至 

  • xImage
  •  

前天那篇有一個小插曲。

題目的文字寫評了 60 個案例,附的矩陣加起來是 58。兩個數字不一樣,模型挑了一個算下去,沒有問我。

那是資訊互相矛盾的情形。

今天談另一種:資訊乾脆沒有。

你叫它寫一則活動公告,忘了說活動限本系學生。它會怎麼寫?空著?問你?還是替你決定?

定律

我目前把它寫成這樣:

若可取得的資訊同時符合兩個需要不同成果的需求,系統無法僅憑這些資訊保證辨識使用者真正要哪一個。

前提是:兩種需求給系統的可觀察資訊完全相同,沒有額外的偏好、記憶或其他辨識管道。

它不是在說模型一定會猜錯。猜中一次不是辨識,猜錯一次也不是本律的全部。如果新模型透過記憶或反問分辨出需求,那是增加了資訊,該記下增加的是什麼。結構化呈現有沒有幫助,屬於版本與任務相關的實測,不是定律的一部分。

還有一條老規矩:沒跑過的實驗不能寫得像有結果;小樣本不能說成普遍現象。

今晚做了什麼

材料

一則系上工作坊的公告需求,九項條件:名稱、時間、地點與形式、講者、對象、報名、費用、攜帶、聯絡。

其中三項我拿掉,做成「不完整版」:地點與形式(實體,不提供線上)、對象(限本系大學部與碩士班)、報名(要事先報名,九月三十日截止,名額三十)。

挑這三項是因為每一項都有兩種都合理的讀法:實體或線上、限本系或公開、要報名或自由入場。而兩種讀法寫出來的公告不一樣。其他六項只有一種讀法,拿掉了模型只能空著,量不到猜測。

完整版與不完整版各做兩種呈現:一段連續敘述,以及一欄一項的分欄。同一資訊條件下兩種呈現的事實完全相同,只有排法不同。這是為了把「補資訊」和「改結構」分開看。

四種提示詞,每種給 Claude Haiku 4.5 跑五次,每次獨立呼叫,共二十則公告。

量什麼

判官拿著完整的九項需求,對每則公告的每一項判四種狀態之一:

狀態 意思
正確 寫的與完整需求一致
錯誤 寫了相反或不相容的內容,例如需求限本系卻寫歡迎全校
未提 完全沒碰這一項
標示不確定 明說待定、另行公告、請洽詢

判正確、錯誤、標示不確定都要引原文,引不出來就改判未提。

事先定了兩張表。表 A 看「給了的條件有沒有寫對」,用來看分欄對已給資訊的影響。表 B 只看不完整的那十則,看三個缺口被處理成什麼。

判官收到什麼

判官是 Claude Sonnet,一則一次呼叫。它拿到完整需求、那則公告、四種狀態的定義。它不知道那則公告來自哪一格,二十則先打亂編號。它也不知道有些公告的需求少了三項。

一筆真實輸出

這是判官對其中一則不完整版公告的判定,只列三個缺口那部分:

{"F3":{"s":"未提","q":""},
 "F5":{"s":"未提","q":""},
 "F6":{"s":"錯誤","q":"報名方式:自由參加(或請洽詢系辦)"}}

需求裡的報名是要事先報名、名額三十。公告寫成自由參加。

防線與否證

判官判有卻引不出原文的,程式改判未提。這次二十則沒有出現。

否證條件事先寫好:表 B 的三十個位置裡,如果「正確」達到二十四個以上,就是模型的預設剛好補對了,資訊加預設就足以辨識,這條律在這一題上沒有被示範,我要照實寫。另外事先預測分欄不會把缺口變成正確,因為沒給的資訊不會因為排版而出現。

材料、判準、否證條件、判官提示詞,都在第一次呼叫之前提交進版本控制。

結果

先看表 A。給了的條件,四格的正確率是 98%、96%、100%、100%。分欄和敘述沒有差別。完整格被扣的三筆,是判官把「少寫了不對外開放」當成錯誤,不是寫反。

再看表 B,三個缺口、十則公告、三十個位置:

狀態 次數
正確 1
錯誤 5
未提 24
標示不確定 0

正確只有一次,離二十四很遠。錯誤五次。

最後一列是零。二十則公告裡,沒有任何一則對缺口說「待定」「另行公告」「請洽詢」。

三個缺口,三種命運

拆開看:

缺口 空著 填了
地點與形式 10 0
對象 8 2
報名 6 4

地點十次全部空著。沒有任何一則發明一間教室,也沒有一則寫線上。

對象被填了兩次。一次是「這場工作坊都適合你,歡迎踴躍參加」,一次是「無論你是正在進行專題的大二同學,或是準備研究計畫的高年級學生」。需求是限本系大學部與碩士班,這兩句都比它寬。

報名被填了四次。「自由參加」「歡迎踴躍報名」「名額有限,敬請儘早報名」。需求是要事先報名、名額三十。判官對其中一句判正確、對幾乎同一句判錯誤,這件事後面會講。

填進去的東西有方向。對象和報名都被填成比真相更寬鬆的版本:更多人可以來、不用先報名。沒有一次填成更嚴的。

地點沒被填,我猜是因為地點沒有一個「預設值」可用。對象和報名有:公告通常歡迎大家、通常寫報名。模型拿了那個通常。

分欄沒有幫上忙

事先預測分欄不會讓缺口變成正確。結果分欄格的表 B 是正確一、錯誤三、未提十一;敘述格是正確零、錯誤二、未提十三。

差別在一次。分欄格填缺口的次數略多,樣本太小不作主張。但事前的預測成立:排版沒有把沒給的資訊變出來。

補資訊和改結構是兩件事。這次只有前者有效果,而且效果是把缺口從表 B 搬到表 A。

三件這次不能往外推的事

第一,判官的嚴格度不一致。 「對象:本系大學部與碩士班學生」少寫「不對外開放」,有兩則判錯誤、一則判正確。「名額有限,歡迎踴躍報名」判錯誤,「名額有限,敬請儘早報名」判正確。依判準我不覆判,全部記在實驗紀錄裡。這些不一致集中在表 A 的完整格與表 B 的報名那一項;標示不確定為零、地點十次未提,這兩個數字不受影響。

第二,三個缺口是我挑的。 挑的是兩種讀法都合理的那種。其他種類的缺口,模型可能有別的處理方式。

第三,每格五次。 表 B 的三十個位置來自十則公告,數字會晃。

這條律怎麼被推翻

如果表 B 的「正確」達到二十四個以上,代表模型的預設和需求對上了,資訊加預設就足以辨識,這條律在這一題上沒有東西可講。

今晚是一。

另一條路:如果模型在缺口處會反問或標示,那它增加了資訊,本律的前提「僅憑這些資訊」就不成立。今晚是零。

所以紀錄表又多了一欄

前幾天加的是「由什麼產生」「第幾次」「目的怎麼驗」。

今天加的是:我沒給的。

寫需求的時候,我知道自己給了什麼。我不知道自己沒給什麼,因為沒給的東西在腦子裡是「當然」。限本系,當然。要報名,當然。

模型沒有那個當然。它有另一個當然:公告通常歡迎大家。

這一欄不是給模型看的,是給自己看的。寫完需求,把它拿掉三項再讀一次,看看剩下的能不能被讀成別的意思。能,就補回去。

本文的協作紀錄是:材料、判準、否證條件與判官提示詞在任何一次模型呼叫之前提交,之後沒有修改;二十則受測輸出與二十筆判官輸出逐字保留,判定由程式彙整,作者沒有逐則覆核判官的判斷,判官嚴格度不一致的地方逐條記在實驗紀錄裡。文章由 Claude 根據作者整理的寫作規則起草。這篇沒有做 Day 2 那種六個審查者的檢查。

下一篇談看過幾個範例,能不能知道未見情況該怎麼辦。


上一篇
第 5 律:字數、格式都對了,為什麼文章還是沒有幫上忙?
下一篇
第 7 律:看過幾個範例,能知道未見情況該怎麼辦嗎?
系列文
生成式 AI 的 30 個定律:用跨模型小實驗理解可靠 AI 的工程原則29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言